Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix #1365, assert CFE_RESOURCEID_MAX is a bitmask #1371

Merged

Conversation

jphickey
Copy link
Contributor

Describe the contribution
Add a compile time assert to ensure that this value is actually a power of two-1 (i.e. an LSB-justified bit mask).

Notes in the comments that it serves as both a numeric limit and a mask.

Fixes #1365

Testing performed
Build CFE normally, sanity check.
Also Intentionally set CFE_RESOURCEID_MAX to an invalid value and confirm that the compile time assert caught it.

Expected behavior changes
Will catch the case if the CFE_RESOURCEID_MAX value changes in such a way that makes it not usable as a bit mask as intended.

System(s) tested on
Ubuntu 20.04

Contributor Info - All information REQUIRED for consideration of pull request
Joseph Hickey, Vantage Systems, Inc.

Add a compile time assert to ensure that this value is
actually a power of two-1.  Notes in the comments that
it serves as both a numeric limit and a mask.
@jphickey jphickey added the CCB:Ready Ready for discussion at the Configuration Control Board (CCB) label Apr 16, 2021
@astrogeco astrogeco added CCB:Approved Indicates code review and approval by community CCB CFS-40 labels Apr 21, 2021
@astrogeco
Copy link
Contributor

astrogeco commented Apr 21, 2021

CCB:2021-04-21 APPROVED

  • Add documentation about where it is defined?
  • Uses osal which calls it a "mask".

@astrogeco astrogeco changed the base branch from main to integration-candidate April 28, 2021 01:32
@astrogeco astrogeco added IC:2021-04-27 and removed CCB:Ready Ready for discussion at the Configuration Control Board (CCB) labels Apr 28, 2021
@astrogeco astrogeco merged commit 68f83b1 into nasa:integration-candidate Apr 28, 2021
astrogeco added a commit to nasa/cFS that referenced this pull request Apr 28, 2021
nasa/cFE#1385, exception logic when app/task is not found
nasa/cFE#1372, error if alignment size not a power of two
nasa/cFE#1368, remove unneeded CFE_ES_SYSLOG_APPEND macro
nasa/cFE#1382, improve documentation for resourceID patterns
nasa/cFE#1371, assert `CFE_RESOURCEID_MAX` is a bitmask
astrogeco added a commit to nasa/cFS that referenced this pull request Apr 29, 2021
Combines:

nasa/cFE#1431
nasa/osal#975
nasa/sample_lib#61

Includes:

nasa/cFE#1379, memory pool pointer type
nasa/cFE#1289, ES child task functional test
nasa/cFE#1289, typo in macro name
nasa/cFE#1286, Remove broken BUILDDIR reference
nasa/cFE#1305, remove option for "osal_compatible"
nasa/cFE#1374, CFE_SUCCESS constant type
nasa/cFE#1316, Remove Unused Error Codes
nasa/cFE#1370, better warning about malformed startup line
nasa/cFE#1373, check status of call to `CFE_ES_CDS_CachePreload`
nasa/cFE#1384, update documentation for `CFE_ES_DeleteCDS`
nasa/cFE#1385, exception logic when app/task is not found
nasa/cFE#1372, error if alignment size not a power of two
nasa/cFE#1368, remove unneeded CFE_ES_SYSLOG_APPEND macro
nasa/cFE#1382, improve documentation for resourceID patterns
nasa/cFE#1371, assert `CFE_RESOURCEID_MAX` is a bitmask

nasa/osal#972, update documentation for read/write
nasa/osal#966, add "handler" feature to utassert stub API
nasa/osal#953, Adds local makefile and bundle/local unit test actions with coverage verification
nasa/osal#971, socket accept using incorrect record
nasa/osal#959, move async console option

nasa/sample_lib#60, replace direct ref to ArgPtr with macro
@jphickey jphickey deleted the fix-1365-resourceid-max branch May 14, 2021 14:23
@skliper skliper added this to the 7.0.0 milestone Sep 24, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CCB:Approved Indicates code review and approval by community CCB CFS-40
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Document/verify CFE_RESOURCEID_MAX is power of 2 - 1 and sometimes used as MASK (and MAX)
3 participants